#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import win32con
import win32gui
import win32clipboard as cb


class MyClipboard:
    def __init__(self):
        # 注册一个窗口类
        wc = win32gui.WNDCLASS()
        wc.lpfnWndProc = self.wnd_proc
        wc.lpszClassName = 'MyWindow'
        wc.hbrBackground = win32con.COLOR_BTNFACE + 1
        class_atom = win32gui.RegisterClass(wc)
        # 创建窗口
        self.hwnd = win32gui.CreateWindow(
            class_atom, u'窗口标题', win32con.WS_OVERLAPPEDWINDOW,
            win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,
            win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,
            0, 0, 0, None)

    # 消息处理
    @staticmethod
    def wnd_proc(hwnd, msg, w_param, l_param):
        if msg == win32con.WM_DESTROY:
            win32gui.PostQuitMessage(0)
        elif msg == win32con.WM_DRAWCLIPBOARD:  # 当剪切板更新的时候收到这个消息
            cb.OpenClipboard()
            txt = cb.GetClipboardData(cb.CF_UNICODETEXT)
            cb.CloseClipboard()
            print(txt)
        return win32gui.DefWindowProc(hwnd, msg, w_param, l_param)


if __name__ == '__main__':
    mc = MyClipboard()
    cb.SetClipboardViewer(mc.hwnd)  # 注册为剪切板监听窗口
    win32gui.PumpMessages()

# # get clipboard data
# win32clipboard.OpenClipboard()
# data = win32clipboard.GetClipboardData()
# win32clipboard.CloseClipboard()
# data = data.split('/')
# data = '\t'.join(data)
#
# # set clipboard data
# win32clipboard.OpenClipboard()
# win32clipboard.EmptyClipboard()
# win32clipboard.SetClipboardText(data)
# win32clipboard.CloseClipboard()